package org.hackystat.sdsa.analyzer.control.processor;

import java.util.logging.Logger;

import org.hackystat.sdsa.analyzer.model.activity.Activity;
import org.hackystat.sensorbase.resource.sensordata.jaxb.SensorData;

/**
 * Defines the processor interface for converting raw DevEvent data into 
 * development activities.
 * 
 * @author hongbing
 *
 */
public interface Processor {
  /** 
   * Check if the given sensor data is processable.
   * 
   * @param sensorData Sensor data.
   * @return Ture if the provided sensor data is processable. 
   */
  boolean processable(SensorData sensorData);
  
  /** 
   * Process the sensor data to generate development activity. 
   * 
   * @param sensorData Sensor data.
   * @param logger Logger.
   * @return Development activity.
   */
  Activity process(SensorData sensorData, Logger logger);
}
